I had the same issue here: Normal map lighting for 2D Pixel Art sprites - #8 by Pawel and Johnny helped me there, let me quote:
If so, what you are missing is that you need to expand the normal from [0…1] range (since it’s a texture) to [-1…1]:
vec4 normal_sample = texture2D(texture_sampler, offset_coord.xy) * 2.0 - 1.0;
lowp vec3 normal_dir = normalize(normal_sample.xyz);
Let us know, if this is of any help