Here, you have to use the `Split` function on the string which will break the string in the set of words using the deliminator and return you a list. Try this code: 

        trigger MultiTaskCreate on Task (before insert) {
    
    Map<task, List<Id>> taskToUsersIds = new Map<task, List<Id>>();
    for(Task ts: trigger.new){
        if(ts.UserListField__c != null){
                taskToUsersIds.put(ts, ts.UserListField__c.split(','));
            }
    }
    List<task> taskToInsert = new List<task>();
    for(Task t : taskToUsersIds.keySet())
    {
        for(String userId : taskToUsersIds.get(t))
        {
                Task task = new Task();
                task.Assigned_To__c = userId; //You will get the UserId here
                task.Status = 'Completed';
                task.Priority = ts.Priority;
                task.Communication_Type__c = ts.Communication_Type__c;
                task.Subject = ts.Subject;
                task.Name__c = ts.Name__c;
                taskToInsert.add(task);
    
        }
    
    }
     if(taskToInsert.size() > 0)
        insert taskToInsert;
    }