Find minimum value in a BST: using boolean operators, and using conditionals
The aspect of the code that may cause difficulty to those new to Lisp appears to be the fact that in Common Lisp, nil has two meanings.  It's the value of an empty list () and it's also false when used in boolean context.  So when we have something like (or '(1 2 3) ()) the first non-NIL list is returned.  When we use and it returns the last item if all items are true (that is, all lists are nonempty if we pass in lists).  If you keep those facts in mind, you'll see that the first code is both consistent and logical.  See also https://stackoverflow.com/questions/23826145/what-is-the-exact-difference-between-null-and-nil-in-common-lisp

I'd probably write the code the first way because it's a more compact way of expressing what you've done with if and also only evaluates node-l once instead of twice.  But then, I'd still write car instead of first, so maybe I'm a relic of former days as well.  :)