This maybe is too late and probably you’ve figured out how to solve it, but anyway, if it’s useful to anyone, I have recently figured out how to solve this. If you read with attention the godot documentation, the part of light shaders says:
If you want the lights to add together, add the light contribution to DIFFUSE_LIGHT using +=, rather than overwriting it.
So, you have to sum up every single light, otherwise only the closest light is computed.
In other words, your problem is solved by simply assign the DIFFUSE_LIGHTcomponent on your shader using +=, like this: