Es spricht aus meiner Sicht nichts dagegen, "statische" Spielerattribute wie ID, Username, Password (hoffentlich gehasht und nicht im Klartext!!!), ..., Geschlecht, LastLogin usw. gemeinsam in einer einzigen Tabelle zu speichern. Die gehören halt alle zu einem Spieler dazu, sind durch einfache Typen darstellbar und jeder Spieler hat genau eins davon.
Ob es sich lohnt, stark dynamische Attribute wie Position, Geld, Erfahrungspunkte etc. in separate Tabellen auszulagern, weiß ich nicht. Das müsste man mal ausprobieren.
Für Dinge wie Inventar oder Freundeslisten brauchst du aber definitiv zusätzliche Tabellen. Für eine Freundesliste würdest du eine Freunde-Tabelle anlegen, wobei jeder Eintrag aus zwei User-IDs besteht. Jeder Eintrag beschreibt also die Freundschaft zwischen zwei Spielern. Ein Eintrag (1, 7) würde beispielsweise bedeuten, dass die Spieler mit den IDs 1 und 7 miteinander befreundet sind. Siehe:
https://dba.stackexchange.com/questions/…-for-friendship
PS: Ein richtiges MMO-Spiel würde wahrscheinlich kein MySQL benutzen, sondern etwas anderes, das sich besser auf sehr viele Server verteilen lässt. Aber solange du nicht erwartest, dass dein Spiel ein Riesen-Hit wird, solltest du dir darüber keine Gedanken machen ...