Your opaque areas seem to have an RGB value of white, but your transparent areas seem to have an RGB value of black.
You've set your alpha cut-off point at 50%, which means that due to bilinear filtering, the RGB value at that point will be 50% white and 50% black -- grey -- this is expected behaviour.
You need to fix your texture (not your code) so that the RGB values in the transparent areas is similar to their neighbouring opaque areas. If a transparent area is next to a green leaf, then it should also be green.
This is also very important when generating mip-maps, because they will also 'drag in' the black RGB values to the opaque areas...
What program are you using to create the textures, and what texture formats do you use?