According to the documentation and tutorial, you should be able to check if you can invite a specific player like so:
SocialService:CanSendGameInviteAsync(sendingPlayer, receiverUserID)
It appears that the receiverUserID argument is ignored and only returns true/false based on your Roblox privacy settings (as if you passed in a zero/nil). I’ve uploaded a game (or download it: canInviteRepro.rbxl, 40.7 KB) that contains a script in StarterPlayerScripts that shows CanSendGameInviteAsync returning true (assuming you have privacy settings set to allow yourself to chat with others) for the Roblox admin account, a banned account, a nonexistent account, a negative number, and your own user ID.
If you call SocialService:PromptGameInvite with the same user ID that it previously told you that you were allowed to invite, it only shows the prompt if you are actually allowed to invite them (friends with the user, chat settings turned on).
System info: MacBook Air, Apple M2, MacOS 13.2.1