il comportamento è normale, il cookie appena generato non lo puoi mica rileggere durante l'esecuzione dello script

se tu fai
form.php --> script.php --redirect tramite header location--> altra pagina php (anche form.php, con i dovuti controlli)

mettendo la stampa del cookie dopo il redirect, otterrai il risultato che vuoi