All'inizio il puntatore deve essere NULL per indicare che non esiste la lista.

E la funzione ne deve tenere conto ... devi prevedere che stai assegnando il primo elemento della lista un successivo elemento.

Vedi

http://en.wikipedia.org/wiki/Doubly_linked_list

dove dice

"...to insert a node at the beginning of a possibly empty list:"