Cita:
Iniciado por Manual de PHP If output exists prior to calling this function, setcookie() will fail and return FALSE. If setcookie() successfully runs, it will return TRUE. This does not indicate whether the user accepted the cookie.
Si enviaste una salida previa al navegador (codigo html, un espacio, un salto de linea, cualquier cosa) entonces no se podra crear la cookie.