¿Has intentado elegir uno de los conjuntos de resultados?
for result in cursor.stored_results():
people = result.fetchall()
Podría ser que esté asignando múltiples conjuntos de resultados aunque solo tenga uno SELECT
sentencia Sé que en los procedimientos almacenados MySQLi de PHP, haga esto para permitir retornos de variables INOUT y OUT (que nuevamente, no tiene ninguno, pero tal vez esté asignando de todos modos).
El código completo que estoy usando (que funciona) es:
import mysql.connector
cnx = mysql.connector.connect(user='me',password='pw',host='localhost',database='mydb')
cnx._open_connection()
cursor = cnx.cursor()
cursor.callproc("getperson",[1])
for result in cursor.stored_results():
people=result.fetchall()
for person in people:
print person
cnx.close()