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:"