Creo que estás leyendo mal la documentación, cuando el error se refiere a IV no es al cuarto parámetro, sino al argumento que se llama así.
Cita: string mcrypt_encrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )
¿Si notas que el último argumento se llama de ese modo?
Cita:
Iniciado por iv Utilizado para la inicialización en los modos CBC, CFB, OFB, y en algunos algoritmos en modo STREAM. Si no se proporciona un IV, aunque es necesario para el algoritmo, la función lanza un mensaje de advertencia y utiliza un IV con todos sus bytes establecidos a "\0".