Cmq non funziona perchè session_start() va all'inizio e non dopo l'if.

La soluzione che hai adottato mi sembra un po' inutile, comunque, perchè basta chiudere tutte le finestre del browser e ritornare sulla pagina per poter votare ancora e quante volte si vuole! Se vuoi essere veramente sicuro che un utente non voti più di una volta allora dovresti memorizzare nel db e fare molti più controlli contemporaneamente!