In Emacs Lisp, 'false' is just the 'nil'. Anything else -- anything at all -- is 'true'.
The expression that tests for truth is interpreted as "true" if the result of evaluating
it is a value that is not 'nil'. In other words, the result of the test is considered true
if the value returned is a number such as 47, a string such as "hello", or a symbol (other
than 'nil') such as 'flowers', or a list, or even a buffer!
In Emacs Lisp, the symbol 'nil' has two meanings. First, it means the empty list. Second,
it means false and is the value returned when a true-or-false-test tests false. 'nil' can
be written as an empty list, '()', or as 'nil'. As far as the Lisp interpreter is concerned,
'()' and 'nil' are the same. Humans, however, tend to use `nil' for false and '()' for the
empty list.
However, in scheme, '() is considered as true value, not false.