They have no physical basis (the only truly correct values are Attenuation0 = 0, Attenuation1 = 0, Attenuation2 = 1) and just give you or your artists a small artistic license.
If you're treating the light as a sphere with a radius, then the correct values are:
Attenuation0/constant = 1
Attenuation1/linear = 2/radius
Attenuation2/quadratic = 1/(radius^2)
or:
atten = 1/(1 + (2/r)*d + (1/r2)*d2)
which you can simplify to:
atten = 1/(d/r+1)2
or
atten = r2/(r+d)2
However, attenuations values inside the sphere (where d < r) are obviously bogus, and as dictated by physics, attenuation will never reach zero, so you need to fudge that a bit so you can perform sensible light culling.
Point lights (spheres with zero radius) don't make any physical sense (attenuation factor would almost reach 0% after almost 0m distance from the source) so Bacterius' values are an appropriate approximation (his values are the pure core of the inverse square law, with no other considerations), or you can use the above with radius=1, etc... which comes out as 1/(d+1)2, or a0=1, a1=2, a2=1.
if i use this value multiply diffuse color, the surface will be very dark
That's physics for you. With realistic attenuation (inverse-square law) your light sources have to be extremely bright. You end up with them being very, very bright right next to the light-source, but very quickly becoming dark. For this to look "right", you need to be rendering in HDR, and use a tone-mapper with a very large range (e.g. from 0 to 212) and a good logarithmic S-curve.
If you're not using HDR, it's common to just use linear attenuation, even though it's fake. e.g. a0=0, a1=1, a2=0 or a0=1, a1=2, a2=0, etc...
Basically, if you're not doing physically based rendering, you'd just tweak them so it looked ok