Prova un cast esplicito del solo tagId come carattere prima della concatenazione, poiché potresti mescolare stringhe binarie e non binarie. Mi piace
SELECT (CAST(GROUP_CONCAT(CONCAT(CAST(tagId AS CHAR), '|', tagName) separator '~') AS CHAR(10000) CHARACTER SET utf8))