newLISP has an approach to cons that I haven't seen before.
(cons 1 '(2)) => '(1 2)
(cons 1 2) => '(1 2)
If the second argument isn't a proper list, then cons behaves like the function list! https://www.newlisp.org/newlisp_manual.html#nil_and_true
(I have a soft spot for lisps that avoid improper lists.)