SELECT * FROM (

  SELECT
    U1.UserID,
    U1.FullName,
    BR.BranchName AS Region,
    X.Products
  FROM
    taUsers AS U1
      LEFT JOIN (SELECT UserID, BranchID, FromDate FROM taUserBranchMember) AS BM ON (BM.UserID = U1.UserID)
      LEFT JOIN taBranches AS BR ON (BR.BranchID = BM.BranchID)
      LEFT JOIN (
        SELECT
          BP.ConsultantID,
          GROUP_CONCAT(DISTINCT PR.ProductCategory SEPARATOR ' + ') AS Products
        FROM
          taClientBranchProducts AS BP
            LEFT JOIN taClientProducts AS CP ON (CP.ClientProductID = BP.ClientProductID)
            LEFT JOIN taProducts AS PR ON (PR.ProductID = CP.ProductID)
            LEFT JOIN taProductCategory AS PC ON (PC.ProductCategory = PR.ProductCategory)
        WHERE
          (COALESCE(PC.MustHaveParent, 0) = 0) AND
          (BP.Status = 1)
        GROUP BY BP.ConsultantID
      ) AS X ON (X.ConsultantID = U1.UserID)
  WHERE
    (U1.Status = 1) AND
    (U1.IsResource = 0) AND
    ((BM.FromDate IS NULL) OR (BM.FromDate = (SELECT MAX(N.FromDate) FROM taUserBranchMember AS N WHERE (N.UserID = U1.UserID) AND (N.FromDate <= NOW()))))
    @pUserID

) AS Y
ORDER BY
  Y.FullName