Both of Kotal Kahn's mix-up options can be punished on block, although it can feel difficult to do because of the pushback and blockstun so your reversal must be timed properly. Since you play Johnny, I would assume his F3 mitigates that.
It should be noted that Kotal's overhead always hits faster than his low.
A little tidbit about the EX overhead: it has two hits, the first being overhead and the second being mid. Like with the normal version, the blockstun feels weird, but I find that crouch-blocking the second hit makes it easier for me to recover and punish the attack. It
isn't safe in spite of what the game's frame data tells you.
He also has a third sword attack that is slower on start-up, but hits mid and is safe. That can be armored on reaction if you note the start-up animation where he reaches for his sword. You can also backdash.
The majority of his offensive options comes from his B1 2 2 string, the first hit being a mid at 9 frames. You may be able to low-profile it with Johnny's D4 - I can do likewise with Scorpion's though his is 8 frames so I imagine he has it easier. If not, memorize the space his B1 occupies and anticipate it with a jab punish. I think Johnny's jabs have fast recovery?
By "unblockable" sword, I imagine you mean the attack where Kotal pounds the ground with his weapon. If so, you can easily jump it, and if he does it at point-blank and you avoid it, you can punish.
When he summons the Sun Ray, I wait for it to go away before moving back in, unless the Kotal is too impatient to hold their ground. I know it's aggravating to see his health go up (as a Jago player, I inflict this pain upon a lot of players in KI), but it's better than you taking damage. If you're within range to punish when he reaches for the sky, LET HIM HAVE IT. It has a looooong start-up.
Only challenge his crouch normals after blocking them, NOT to anticipate. If I'm correct, all his pokes are 6 frames and are safe. Let's not forget his seven-frame uppercut and his anti-air grab which means no crossing him up or jumping in unless it's on a knockdown where he doesn't quick rise.
I'm still getting the hang of the match-up, but after playing a good amount of games with Kush and
@Eldriken I feel I have a reasonable amount of knowledge for it. If you don't manage to block all his mix-ups, that's okay: most of the time he's only getting his damage if he has meter to hit you with an EX overhead, otherwise a guess will just be a knockdown with no combo.