I read about Google Cloud Messaging for Android (GCM) and I liked it but I am afraid of drawbacks and misunderstanding
1)Do we have to force the client app end users to have at least one google account to enable the usage of GCM?
2)Is Google Play Store required for clients to use GCM?
if yes, Is it done by the client app user or by the server app side user?
On older devices, yes. Quoting the documentation:
No, but the Google Services Framework is required, and usually devices with the Google Services Framework have the Play Store.