Como toda a consulta precisa estar em um formato de string durante a execução da consulta,
%s
deve ser usado... Após a execução da consulta, o valor inteiro é mantido.
Então sua linha deve ser.
.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string))
A explicação está aqui