EDIT: I just managed to fix the issue by reinstalling PyOpenGL with pip. The same program now works as expected. Thanks for your efforts.
The entire question was rewritten and clarificated.
The issue does not lie in the (although weird) Texture creation and binding approaches, as explained in the comments.
My actual problem is the fact that uniform variables in the shaders are not updating their values when changed (yes, changed from outside the shader) between calls to glDrawArrays(). I verified that by using different types of uniforms, different values and checking their values by rendering to a texture.
It seems like the values of the uniforms are locked as soon as glDrawArrays() is called. After that, I can only change them again when the color Buffer is cleared.
I am willing to give a bounty for any working solution. Posting any source code is not helpfull in my opinion, as the problem does NOT seem to lie in the code.
Any suggestions are apprechiated.