I am not a native speaker either.
But to me the first could mean :
I am certain he wasn't hungry.
(Similar to a sentence: "He must have not seen it coming")
The 2nd line would mean:
It's impossible that he was hungry.
But "I am certain he wasn't hungry." and "It's impossible that he was hungry." mean basically the same thing - "According to me, he could not have been hungry."
Similar situation:
Well, he must not be the thief they're looking for then. (We'd better let him go)
Well, he can't be the thief. (He wasn't anywhere near the victim during that time. You can't arrest him.)
Again, these sentences mean basically the same thing.
If he can't have been the thief, then he mustn't have been the thief.
Somebody else must have been the thief.