SELECT c.company_id
FROM companies c
NATURAL JOIN addresses a
WHERE NOT EXISTS
(SELECT * FROM addresses a1
WHERE c.company_id = a1.company_id AND a1.country_id = 15)
GROUP BY c.company_id
Alternatively you could use another join instead of exists subquery. You may get better performance using this as the subquery is only resolved once.
SELECT c2.company_id
FROM (SELECT c.company_id
FROM companies c
NATURAL JOIN addresses a
GROUP BY c.company_id) AS c2
LEFT JOIN addresses a2
ON a2.company_id = c2.company_id AND a2.country_id = 15
WHERE a2.company_id IS NULL