you have something weird going on with your "is mirrored". First you check if the sprite is mirrored or not, but then, in the key press condition, you also check if the sprite is mirrored a second time. While in the facing left case it does not really matter, in the facing right it does because you first check that the sprite is not mirrored, then you check if it is, so the second condition will never be true.
Then something is messed up with the left/right arrows too. In your "facing left group" you check if the right arrow is pressed. Should it be the left arrow?
then in the "facing right" group, you check if the left arrow is pressed, but if the right arrow is released. There is definitely a mistake here
finally, the actions in the facing left and right groups are exactly the same. So even if your logic was right, it would not work.