Como toda la consulta debe estar en formato de cadena durante la ejecución de la consulta, %s
debe usarse...
Después de ejecutar la consulta, se retiene el valor entero.
Así debería ser tu línea.
.execute("INSERT INTO table VALUES(%s,%s)", (int(id), string))
La explicación está aquí