I noticed something fishy. I deleted all manipulations to the texture matrix in my code and just left the printing there to get the contents of the texture matrix.
In the first frame (before anything was ever rendered) the texture matrix was this:
[1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0]
The identity matrix.
But after the first rendering of an image it was:
[0.0078125, 0.0, 0.0, 0.0, 0.0, 0.015625, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0]
at every other frame.
I dont know how this comes since I never do any changes to the texture matrix anywhere else in my program.
Edit: Nevermind, I do make a change to the texture matrix somewhere, now I think I am just stupid...
Ok manipulating the texture matrix works now.
But I found out it doesnt help me with my problem. Yes, the texture is mirrored, but not the image. The image only uses a small portion of the texture (its a spritesheet) so the result is not what I was looking for.
It still is good to have eliminated this small bug though.