The most important thing: rename your function to print-first or something else, since, as already said, the function first is standard, and redefining a standard function might work or might not work (in this case, it didn't). It would be more readable if you cleaned up your code a little bit. For instance, don't put a single ')' in a new line because it will make your function larger. In Lisp, smaller functions are easier to read. Instead, put the parens all together after the last expression and use some editor that does auto-indentation for Lisp. You may feel a little insecure to do that at first but, if you let the editor keep the lines indented, you won't even notice the parens.

The last thing, it would be interesting to change "~a" with "~a~%" or else it will print a lot a symbols in a single line, making it hard to read.

If you make these adjustments, your function will look a lot better, and it also will work, I tested it here.

Thank you for the help. I didn't realize first was a built-in function and following with your advice got my program to work. Now I'm just working on getting a new function to print the tail of each list, but it should be easy.