Well,
For GCM you need outbound port 443, yes it works and it is enough 
However in some environments, specially when there is a proxy the push fails (rare)
1- Try to have the device on mobile data
2- be sure that you have green mark in the android agent status "The push client is registered"
3- if you are using an android 4.0.4 or lower a gmail account has to be set on the device and play is running in the background (clearing the memory might kill the thread)
4- if you change any GCM settings, then reenroll the agent. and you have to be sure that the push client is registered.
5- check the agent logs incase the registration fails it will mention it.