De referência do MySQL Docs para load_file , ele pode ser visto que load_file é a função MySQL que retorna o conteúdo do arquivo como string. Não faz mais do que isso. Não tem nada a ver com local_infile.
Por motivos de segurança, dos mesmos documentos:
If the secure_file_priv system variable is set to a nonempty directory name, the file to be loaded must be located in that directory.
Portanto, se você definir a variável de sistema "secure_file_priv", o arquivo deverá estar presente nesse diretório específico. Além disso, o usuário requer privilégios de nível de arquivo para executar essa instrução. Simplesmente não conceda privilégios de nível de arquivo aos usuários que acessam o banco de dados, se você quiser que ele seja protegido.
Além disso, infil local é para LOAD DATA , que carrega dados na tabela, afetando as tabelas. Não tem nada a ver com a função load_file ().