Hi MAHak,
Looks like your GUID is missing the type cast and name at the beginning and you are missing the target player to whom the NPC is being added. Here is an example from Origins when adding Lohse to the party:
CharacterAddToParty(CHARACTERGUID_S_Player_Lohse_bb932b13-8ebf-4ab4-aac0-83e6924e4295,(CHARACTERGUID)_Player);
If you want to use the GUID of the NPC you are adding, you can find it using auto-completion in the story editor. Make sure you generate definitions, and then when it's time to enter the GUID just start typing in the name of the NPC and then CTRL+SPACEBAR. You will get a drop down menu of matches and you can pluck the right GUID from the list. However, this doesn't help the issue of finding your _Player handle.
With the caveat of not having tested this and trying to go by memory of how I got this to work, I would try something like:
IF
DialogEnded("NPC_Roylin", _instance)
AND
DialogGetInvolvedPlayer(_instance, 1, (CHARACTERGUID)_player)
AND
DialogGetInvolvedNPC(_instance, 1, (CHARACTERGUID)_npc)
THEN
CharacterMakePlayer(_npc);
CharacterAddToParty(_npc, _player);
You may also want to consider setting a flag on the player in your dialog that indicates whether or not this NPC will join the character, unless you always want him to join regardless of the outcome or choices of the conversation. If you add a flag, add another query in the frame after DialogGetInvolvedPlayer() with something like:
AND
ObjectGetFlag(_player, "Roylin_AddToParty", 1);
Finally, last bit of advice is that when you are trying to use a new Osiris call for the first time, consider looking at examples from Origins. You can either open up Origins directly or create a test sandbox with a dependency on Origins and build the story. Then you can simply press CTRL+SHIFT+F in the story editor and enter the function of interest in the search box. It will show every occurrence of that function in the story and you can double click each row in the search results to open the script and location of that call.