Je zou de update gewoon moeten doen via een join als deze
UPDATE
t1 INNER JOIN t2 ON t1.variant_id = t2.variant_id
SET t1.product_code = t2.value
WHERE t2.key_id = 10
AND t2.value IS NOT NULL
U hoeft zich in dat geval geen zorgen te maken over nulls, aangezien de inner join alleen rijen selecteert waar de variant_id in beide tabellen voorkomt.