I'm using marmalade, which is currently using cocos2d-2.1beta3-x-2.1.0.
I had the exact same issue, using a CCLayerColor that would not change from a black screen/background, regardless of using initWithColor() or setOpacity() or setColor(). Getters also indicated that the colour was being properly set in the layer's data, just not actually showing up.
The cause was that I was overriding draw, which was set up by default in the blank marmalade cocos2d-x project. The fix is simply to call CCLayerColor's draw method first.
// Now draw your custom stuff
Apologies for the thread necro, but I had the same problem and have been searching far and wide for an explanation. I just happened to figure it out myself and want to leave this here for anyone else confused.