No, they're both possible choices for your basic client-server communication layer that you build everything else on. (I mean, technically gRPC rather than protobuf, but protobuf is the biggest part of gRPC).
Intersects quite heavily if you're defining a schema for your API
What are differences ?
Not at all.
Yes. The use cases are very different, as far as these things go. To say otherwise is borderline misinformation.
You can build services internally with gRPC and serve a public graphQL API that aggregates them.
That's just a distributed monolith and you shouldn't do that.
Haha. No...it's just a _distributed system_. One with firm, precisely-defined boundaries around each horizontally scaled sub-system.