You may have to change some of your program logic because the path that can be part of the returned value of &_PROGRAM is the metadata repository path ... not the operating system path where the stored process is stored.
This is probably a question for Tech Support then. I know that sometimes the reserved macro variables are available on all clients and then sometimes, they're not created or used by a particular client. So you could call that stored process from one client and &_PROGRAM would be available to your program but from another client, it would not be available because you client does not use or surface that macro variable. If &_PROGRAM is not available for your usage situation, it's possible that Tech Support knows of a workaround for you.