As far as I can see, your solution is almost correct. First of all, you just have listed a wrong set of variables (it should be a,c,d instead of c,d). If no state has label a, it means that a is false in all of these states, it does not mean that a does not exist!
Finally, we have
{(S0,S0);(S1,S1);(S2,S2);(S3,S3);(S4,S4);(S5,S5)}
∪ {(S0,S3);(S1,S4);(S2,S5)}
∪ {(S3,S0);(S4,S1);(S5,S2)}
so that we can merge states {(S0,S3);(S1,S4);(S2,S5)}
As we have three states, we call them 0,1,2 and have then the following structure that we obtain by renaming 3 by 0, 4 by 1 and 5 by 2:
vars a,c,d;
init 0,2;
labels 0:; 1:; 2:c,d;
transitions
0->0; 0->1;
1->0; 1->2;
2->0;
So, it seems that your second problem was that you named states 1,2,3 instead of 0,1,2. Am I right?