Firstly, what the hell is all the casting for? In the first case it does nothing (why cast something to what it already is?) and in the second it's a bug (casting like this doesn't make a narrow string a wide one). In fact the second cast is probably the casue of the problem as wide strings need a two byte NULL. Try this:
pop = FindWindow(L"NotifyIconOverflowWindow", NULL);
ShowWindow(pop, SW_SHOWNORMAL);
Stop casting!