They are not essential, but they make code that operates in lisp more compact and pleasant to write.
In Scheme my code is littered with
(if (null? lst)
;; handle empty case here
...)
Simply because otherwise car throws an error. This whole section is often unnecessary in CL.