SELECT i.c.w. a COUNT and INNER JOIN gives different results with string literals and numeric values when they are used in a WHERE clause
The commenters were very helpful. They pushed me into thinking in the right direction. Let me explain. 

If you would have a table like this: 

gln     status
108     closed
108     open
108     closed


And, you would execute a query like this: 

SELECT COUNT(gln) FROM tableA


The result would be 3. 

If you would execute a query like below: 

SELECT COUNT(gln), status FROM tableA


Then you would only see 1 status, others status cells would disappear. 
This disappearance could mean trouble.  

A correct query should look like this: 

SELECT COUNT(gln), status FROM tableA GROUP BY status




ONLY_FULL_GROUP_BY

MySQL can work in different modes. One of these mode is called: ONLY_FULL_GROUP_BY. This mode is turned off on some Database Servers.
This mode forces Database Administrators to use the GROUP BY in an aggregated query ( query with a COUNT() ). 

Link: https://dev.mysql.com/doc/refman/8.0/en/sql-mode.html#sqlmode_only_full_group_by



@danblack was thinking in the right direction. 
The query should look like this: 

SELECT 
    c.informationProvider as cGLN,
    p.informationProvider as pGLN,
    COUNT(p.productID) AS count,
    p.productID,
    p.productStatus 
FROM tblproducts AS p 
INNER JOIN tblcompanies AS c ON (c.informationProvider = p.informationProvider) 
WHERE       p.productStatus IN ('requested' , 'expected', 'open')
AND c.informationProvider = '8718885110005'
GROUP BY p.productID, p.productStatus, p.informationProvider