bool setcookie ( string $name [, string $value [, int $expire = 0 [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]]]] )
[..]
pathThe path on the server in which the cookie will be available on.If set to '/', the cookie will be available within the entire domain. If set to '/foo/', the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
You told us that the file which retrieves the cookie is not in the root path.
If the file that sets it is also not in the root path, be sure to set $path to "/" (or possibly a different value which still fits your use) when you call setcookie.