TL;DR. 'I'm' is fine as a clue. Others may disagree but they are 'looking for trouble'!
The rules to Codenames here give lots of rules on what is or isn't a valid clue. I think the most important is this heading
DON'T BE TOO STRICT
They also say
Sometimes you have to make judgment calls about what is valid and what
is not. Different groups may prefer to play the game differently.
and
anybody who says you can't say sparrow when ROW is on the table is just trying to cause trouble.
I think the rules are weirdly clear that this is a game where rule lawyering is NOT encouraged. They say if you're not sure they to asked your fellow spymaster but I think the insinuation is to keep the game light and fun unless its a very clear rules break. This is a light party game after all and should be kept that way. To reiterate "DON'T BE TOO STRICT".
Saying "I'm" is something that is very common usage and a clue people will know. It's not like you've invented something "OKIsland" to indicate 'Fine', 'Good' and 'Lost'. or nonsense like "Penal'TV". Yes it might be a contraction of two words but it's common usage is said as one word.
I'd argue that a clue like "'Twas'" is valid for "Night" and "Christmas" as it is said out loud as a single word
You might also to want look at this English StackExchange question which debates if "It's" is one word or two. If you type "It's" into a word processor and do a word count then it counts as one word. "I'm" does the same.