A communication protocol is just some rules that define how messages are sent, received, and understood. You can think of the English language as a protocol: if we agree that the word "cat" refers to the little four-legged demons that have domesticated us, then we can communicate effectively about them.
AMQP is the protocol that RabbitMQ implements.
The Advanced Message Queuing Protocol (AMQP) is an open standard for passing business messages between applications or organizations.
-- AMQP.org
While Kafka, SQS, Google Pub/Sub, and NATS use their own protocols (not AMQP), AMQP is still an open standard, and other message brokers like ActiveMQ, Qpid, Solace and Azure Service Bus also implement it.

The biggest advantage of an open protocol like AMQP is interoperability. If you're using RabbitMQ for your project and want to switch to ActiveMQ, you can do so without changing your code (or at least not very much of it).
HTTP is another open standard: it doesn't matter if you use Go or JavaScript to write your web server, they both speak HTTP and can serve the same incoming requests.