Color used for group is not transferred to particles
Your shader uses the Geometry > Position output to set the gradient. This output is just the World-Space (absolute) location of the point being shaded, so as your particles move up and down they will move "through" the gradient, or in your particular case, just sit above it.

Instead, use the Object output on the texture coordinate node. This will factor in the transformation of the object being shaded, so the gradient remains the same no matter where the object appears, or how it is scaled or rotated.

Note: The texture coordinate nodes' Object output has a field to specify a reference object. Leave this blank so the node will instead use the object currently being shaded.