In a similar topic Validate if commit exists they recommend:
git rev-list HEAD..$sha
git cat-file commit $sha
You can just run
git cat-file -t $sha and check it returns "commit". You are right, you don't need to actually print the actual object for that...
I'm not 100% sure that what goes on behind the scene is more efficient, though.
test $(git cat-file -t $sha) == commit