Cita: donde la expresión1 seria un comparativo entre dos select que hago para saber si el valor de una columna es igual en la columna de otra tabla seria algo como
if (select... < select... , exp2)
IF() en ese contexto es una función que devuelve un valor en base a una comparación lógica,
pero no ejecuta una sentencia en forma condicional. No es ese el sentido, y no puedes poner subconsultas dentro de la función.
Además, para saber si un valor de un campo en una tabla es igual, mayor, menor o diferente respecto de otro campo de otra tabla, se usan INNER JOIN, LEFT JOIN o RIGHT JOIN... No funciones así.
Me da la impresión de que no has estudiado suficientemente sobre SQL:
Cita: y la expresión2 seria un insert que se ejecuta en caso de que se cumpla la comparación entre los dos valores arrojados por los dos select de la expresión1
No. En MySQL no sólo no existen sentencias condicionales, sino que además los DBMS que conozco no permiten hacer una consulta condicional donde se pueda seleccionar y/o insertar en la misma sentencia como lo estás describiendo.
Creo que estás planteando mal tu solución. Lo que describes se puede lograr por medio de stored procedures, no de sentencias únicas, y es de ese modo que se crea ese tipo de lógicas.