Perhaps you should use $match: {'color': {$exists: true}} before $group operation. With sparse index it will work pretty fast.
And do not store "null" fields in collections at all, that will reduce db size and will increase search speed for sparse indexes (less documents in index -> more speed)