An animation with 1 frame will trigger the 'stopped playing' in the same tick.
Give it at least 1 frame more (i prefer 2).
Now you have two options.
1/ Set 'normalattack' to true on pressing 'A'. With an aditional 'trigger once while true'
2/ When "normalattack" is true > play Punch .. from beginning (animation must not be looping) ...
3/ Set 'normalattack' to false on Animation 'Punch' finished.
4/ All other animation events get an additional 'when "normalattack" is false.
Or, not using a boolean.
1/ Set Punch to play when pressing 'A'. With an aditional 'trigger once while true'
2/ All other events that start an animation get an additional condition 'when Punch is not playing' (inverted is playing).