Com libpqxx você pode enviar um valor nulo chamando o operador () em uma instrução preparada sem argumentos, por exemplo:
xAction.prepared("insertBulkData")()(uuid)(coreNo).exec();
enviaria NULL como o primeiro parâmetro para a instrução.
Eu não acho que você consiga substituir automaticamente uma string vazia por NULL. Uma maneira de conseguir isso seria modificar o SQL que você está usando:
INSERT INTO T_CORES (MAC, UUID, CORE_NO) VALUES (CASE WHEN $1='' THEN NULL ELSE $1 END, $2, $3)