This answer won't be an answer to your question directly, but I believe it will help you achieve what you want.
Before you do anything in blender, first try this:
place a lightsource low on a flat, slightly reflective surface, for example a wooden table. Look at the reflection of the lightsource on the surface from a high point of view and a low point of view. You will see that the surface is more reflective when looked at from a low angle than a high angle. Basically, the angle at which you are looking at the surface influences how reflective the surface is.
Now back to blender.
In order to create a realistic looking material, you need to use the same principle. In your current node setup, you are simply mixing a glossy shader with a diffuse shader. This means that your object will be half the color of the texture, and half the color of the light it is reflecting, which is most often white. And a black texture and a white reflection create, as you can probably guess, a grey mess, no matter from what angle you are looking at it.
In order to fix this problem, you need the material to behave like a real world material, like the surface from earlier in this answer. This sounds much harder than it actually is, the only thing you have to do is connect a fresnel node to the fac input of the mix shader, and you're done.
The fresnel shader connected to the mix shader:
From left to right: a diffuse only material, a material with diffuse and glossy mixed with a value of 0.5, and the above material with the fresnel node.