soit tu fais en deux passes (un premier select pour ne récupérer que les informations de l'article, puis un second pour ne récupérer que la liste des fichiers attachés à l'article, ce qui évite de faire un left join, et accessoirement rend la détection de l'absence de fichier plus aisée) soit tu ne lis que la première ligne retournée par ta requête en ce qui concerne les infos du fichier, puis tu boucles sur toutes les lignes (y compris la première) pour retrouver les infos des fichiers attachés. a noter que le left join retournera une ligne avec des nulls pour les infos du fichier, et il faudra traîter ça proprement.
reste une solution batarde qui existe avec les versions récentes de PHP, une fonction "list" ou un truc comme ça qui permet de retourner sous forme d'une liste séparée par des ";" les informations d'une colonne non contenue dans la clause group by. perso je te déconseille cette méthode, même si elle est tentante, car ça interdit tout portage de ton site vers un autre SGBD. accessoirement, cette fonction doit très bien marcher avec quelques lignes, mais j'aimerais savoir ce que ça donne quand tu récupères 100 chemins d'accès à des fichiers avec... un varchar de quelques milliers de caractères, c'est un coup à avoir une erreur, voir pire, des données incomplètes.