I am drawing sprites to the framebuffer at each pixel for every step in a line between two points, but I have an issue with the blending:

I am currently using:
(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
Then, in my shader I do:
if( color.a == 0 )
color.rgb = 0;
However, if you look at the red and green star, you can see the "additive blending" that happens where the alpha is between interval of (0,1).
Without additive blending this 3D effect occurs:

Is there a way to have additive blending of like colors, but avoid when colors are not matching?
It should look like this:

You can do this using pre-multiplied alpha.
First you need to set up your texture properly. Draw it white on black like this:
Then duplicate the texture's brightness into its alpha channel. In GIMP you can do this by right-clicking the layer, choosing Add Layer Mask, and then Grayscale Copy of Layer. It will look kind of like this (as shown in Gimp):
Then you can recolor it's RGB channel if you like, although it's more versatile to leave it white and color it in your code.
In your code, when you draw the shape, use the blend function for pre-multiplied alpha:
And draw it using the default SpriteBatch shader. After you've drawn the shape, switch back to regular alpha blending:
Sample game: