I noticed some people attack foreigners who say anything negative about their country, yet they themselves criticize their same country and are being negative. What's a word that describes them? Looking for a word that doesn't have a political connotation. Other than hypocrite.
I don't think there is one word that encompasses both attitudes. Patriotism may lead nationals to frown upon external criticism and, indirectly, to their feeling that they are the only ones empowered or entitled (as @tk421 cleverly suggested) to speak as they wish about their domestic affairs.
This issue reminds me of a famous, long poem from my country, "Martin Fierro", which refers to the question in the following words:
Brothers should stand by each other because this is the first law.
Keep a true bond between you always, at every time --
because if you fight among yourselves you'll be devoured by those outside.
(Translated from Spanish by Kate Kavanagh)
"Don't talk about matters you don't know!" ~ This is a very common sentence we hear now and then. And what you are describing is not hypocrisy in any way. It's a psycological concept and sadly has not specific term in the current dictionary.
If you live in a particular country A, you are the citizen, you are the one who voted for the system, you are the one suffering from the problems the nation is facing. But someone who lives thousands of miles away from you and has never visited your country has no right to critize it. They didn't vote for the system, they aren't experiencing what the citizens are. People don't like people to interfere in their personal matters when they can't change anything. It's like you fight with your siblings but if some stranger tries to harm them, you take your sibling's side. Look, at last your country is the only place which will help you, he's not inviting you to his country. So, it's just a psycological concept which unfortunately has no terminology in English.