If you have multiple /cast commands in a macro, the first one where the condition is true gets cast.
In your macro, your first /cast command has a condition-less “else” case at the very end which states “if none of the previous conditions match, then cast Renewing Mist”. Due to this, the second /cast command never gets evaluated.
You could try adding “[nomod]” to the final Renewing Mist cast condition. That would then prevent it from evaluating to true when Ctrl is pressed.
On the other hand, what exactly are you trying to achieve? This macro seems quite complicated, and if you want to do similar things with other spells/skills and other characters, you’ll have to write a lot of complicated macros. Maybe a hotkey bar addon that allows you to switch hotkey bars based on Ctrl/Alt/Shift modifiers might be better, or you might want to use multiple hotkey bars with separate keybinds for Renewing Mist and Surging Mist.
I personally use ElvUI and always show 3 horizontal hotkey bars with 12 buttons each. The 1st has keybinds without a modifier, the 2nd has keybinds with Shift, and the 3rd has keybinds with Ctrl. Then I use very simple mouseover macros for spells I might want to cast on other players (heals, debuffs, etc.)
By default, WoW doesn’t support mouseover casts. With that macro, you allow mouseover casts, and if you don’t have a mouseover target, it simply casts as it normally would.