Change your calculation to:
age & " " & If ( IsEmpty ( color ); "" ; color & " " ) & Ancestry
This checks to see if the Color checkbox is empty. If so, then return a null string. If not, then return color and a space.
Does that make sense?
Sorry clarification what if I had 15 different catagories I was placing into the merge field. Could I have a comma after each?
Sex, Age, Color, National Origin............
Substitute ( CheckBox ; ¶ ; ", " )