Creo que es mucho más probable que encuentre un error no detectado, en lugar de que el activador no se esté ejecutando, especialmente porque se ejecuta correctamente desde la consola.
Debe aislar dónde se produce el error:en el activador mismo o en el script de llamada.
En su secuencia de comandos de python, imprima la instrucción SQL que python envía a MySQL para su ejecución a fin de asegurarse de que se construya como espera; por ejemplo, si NEW.type no es igual a 'PRE', el disparador se habrá ejecutado, pero no generará ninguna actualización.
También asegúrese de verificar si hay errores en el prospecto. No soy un programador de Python, así que no puedo decirte cómo se hace, pero esto parece ser lo que buscas.
Si ninguno de estos te lleva al problema, comenta todo el if (NEW.type = 'PRE') THEN
bloquear y hacer una modificación simple, como establecer NEW.type en 'depurar'. Después de asegurarse de que el disparador se ejecute, vuelva a probar sucesivamente con más código real agregado hasta que aísle el problema.
Además, con el comentario de Marcos, me sorprendería si el script no se autocomprometiera al completarse con éxito. De hecho, haría esta afirmación sobre cualquier escritura/idioma.