Events are read from top to bottom..
after the actions of the first event is triggered, the conditions of the second event are true that same tick, so will be triggered also..
When the actions of both events are executed it looks like nothing has changed..
There are many ways to fix this.
One way to do it without changing to much of the way you have set it up, would be to put the On is not visible as a subevent and add an else event below.
- mouse on left button clicked on off
----- On is visible
On set invisible
Off set visible
------ else
On set visible
Off set invisible
Another way, which would have my preference, would be to use animationframes for on and off, toggling a boolean variable and setting the frame accordingly.