You don't have to use GROUP_CONCAT. This query will return all (network_id, productRange_id, country_id) that have multiple IDs:
SELECT p.network_id, p.productRange_id, p.country_id, GROUP_CONCAT(p.id)
FROM Perimeter p
GROUP BY p.network_id, p.productRange_id, p.country_id
HAVING count(id) > 1
This query will return all IDs in different rows:
SELECT p.ID
FROM
Perimeter p INNER JOIN (
SELECT p.network_id, p.productRange_id, p.country_id, GROUP_CONCAT(p.id)
FROM Perimeter p
GROUP BY p.network_id, p.productRange_id, p.country_id
HAVING count(id) > 1
) d ON (p.network_id, p.productRange_id, p.country_id) = (d.network_id, d.productRange_id, d.country_id)
and this is your final query:
SELECT pd.*
FROM Product pd
WHERE
perimeter_id IN (
SELECT p.ID
FROM
Perimeter p INNER JOIN (
SELECT p.network_id, p.productRange_id, p.country_id, GROUP_CONCAT(p.id)
FROM Perimeter p
GROUP BY p.network_id, p.productRange_id, p.country_id
HAVING count(id) > 1
) d ON (p.network_id, p.productRange_id, p.country_id) =
(d.network_id, d.productRange_id, d.country_id)
)