The solution for Safari was very simple, but I do not understand why it was the solution.
Changing this:
setcookie( 'cookiename', '1', time()+1200, '/' );
... to this:
setcookie( 'cookiename', '1', time()+1200, '' );
Using an empty PATH parameter and PHP and JS both recognize the cookie and value.
I would love to know why this is the solution for Safari if anyone can elaborate!
Cheers