Список - это не что иное, как связанный список cons-ячеек, заканчивающийся нулевым значением.Например (1 2 3) эквивалентно (минусы 1 (минусы 2 (минусы 3 (ноль 3))))
Ваш код по своему замыслу неверен, потому что то, что вы пытаетесь создать, используя ноль, пустой список, а затем вы пытаетесь довести до него другие элементы.Исправленная версия того, что вы пытаетесь сделать, будет
(defun r (list)
(let ((o ()))
(dolist (el list o)
(setf o (cons el o))))