Subqueries in SQL Server
Your code has a number of issues:

You can simplify to a  COUNT(DISTINCT here as you want the number of distinct products
The subquery returns ProductID you would need CustomerID instead. Since you need the grouped count, you are better off with an EXISTS query instead
You are querying Customer again unnecessarily. Products is also not needed as you can get ProductID from OrderItems

SELECT c.CustomerID
     , c.EmailAddress
     , c.FirstName
     , c.LastName
     , '#3: Customers who have ordered more than 1 product' AS queryInfo
  FROM Customers c
 WHERE EXISTS (SELECT 1
             FROM Orders o
             JOIN OrderItems oi
                  ON o.OrderID = oi.OrderID
             WHERE c.CustomerID = o.CustomerID
           HAVING COUNT(DISTINCT oi.ProductID) &gt; 1
         )
     ;

You could also remove the HAVING and check the COUNT(DISTINCT from the subquery on the outside:
 WHERE (SELECT COUNT(DISTINCT oi.ProductID)
             FROM Orders o
             JOIN OrderItems oi
                  ON o.OrderID = oi.OrderID
             WHERE c.CustomerID = o.CustomerID
         ) &gt; 1