Você deveria estar fazendo a atualização em uma junção como esta
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
Não há necessidade de se preocupar com nulos nesse caso, pois a junção interna selecionará apenas as linhas em que o variant_id existe em ambas as tabelas.