Gender is always based on the grammatical subject, not real-world gender. In this case the subject of the sentence is majesté, which is feminine. The sentence is framed in the third person with the majesté as the subject, not second-person (there is no vous).
Compare this to English:
(A) Your Majesty has an appointment at seven.
(B) Your Majesty have an appointment at seven.
Which would you say? I'd say (A). Here, as in French, the subject is the noun "majesty", not the pronoun "you", so the verb agrees in third-person singular.
In case it's not the syntax but the grammatical mismatch that makes it difficult, here's another example of the latter. In the introduction to Le Petit prince, Antoine de Saint-Exupéry keeps using elle for the person he's dedicating the book to:
Je demande pardon aux enfants d'avoir dédié ce livre à une grande personne. J'ai une excuse sérieuse : cette grande personne est le meilleur ami que j'ai au monde. J'ai une autre excuse : cette grande personne peut tout comprendre, même les livres pour enfants. J'ai une troisième excuse : cette grande personne habite la France où elle a faim et froid. Elle a besoin d'être consolée. Si toutes ces excuses ne suffisent pas, je veux bien dédier ce livre à l'enfant qu'a été autrefois cette grande personne. Toutes les grandes personnes ont d'abord été des enfants. (Mais peu d'entre elles s'en souviennent.) Je corrige donc ma dédicace :
But then we found out said person is Léon (m) Werth, when he was a little boy:
A LÉON WERTH
QUAND IL ÉTAIT PETIT GARÇON
Why? Because Léon (m) is une grande personne (f), a grown-up.
Exercise: Why is it correct to say « Le mot reine est féminin » without an extra e on the end of féminin ?
The word 'mot' is a masculine noun. It doesn't matter that the real-world thing described by reine, a queen, is a feminine person.