Is there any way to make a user add certain groups to their account for example: custom Nickname colors?
Yes.
Go to ACP -> Users & Groups -> Groups
Create Group and add permissions to it as you wish,
Click to name of that usergroup, you have options for that under "Publicly Joinable Options"
Thanks. How would a user join a group after?
You should go to your User CP and than you have on the left side "Group Memberships"