Em retrospectiva, este foi um erro realmente estúpido, mas difícil de detectar. Values é uma palavra-chave em sql, portanto, os valores do nome da tabela precisam de aspas.
def __insert_values(self, values):
cursor = self.connection.cursor()
cursor.executemany("""
insert into `values` (ensg, value, sampleid)
values (%s, %s, %s)""", values)
cursor.close()