It might help to read the manual for "picking" instances [https://www.scirra.com/manual/75/how-events-work].
Also search the tutorials and forums for "picking".
As your code stands the bullet objects all go right when X is mirrored because nothing is picking which instances of the bullets.
One way would be to give your bullet an instance variable of JustSpawned=0, have your code condition JustSpawned=0 when deciding its direction and change it to JustSpawned=1 once it has its direction assignment... this way old bullets will ignore direction changes and changes will happen so quick duplicates shouldn't occur.. but if they did you would need to tighten the "picking" conditions more.