Se você tiver várias colunas em um conjunto de resultados com o mesmo nome, até o mysql retornará todas elas, mas elas também terão o mesmo nome no conjunto de resultados, a menos que você use um alias de campo. Criei um sqlfiddle para provar isso aqui . Provavelmente, sua biblioteca cliente não consegue distinguir entre as 2 colunas. Este é um problema conhecido, por exemplo, com laravel.
Tanto o mysql quanto o mariadb permitem que você prefixe os nomes dos campos com nomes de tabelas, mas o nome da tabela não é retornado como parte do nome do campo. No entanto, a maioria das bibliotecas cliente é capaz de recuperar metadados para as colunas em um conjunto de resultados retornado por mysql/mariadb, que incluiria o nome da tabela para colunas não calculadas. Veja por exemplo mysqli_fetch_field_direct() função.
Você pode usar o nome da tabela recuperado dos metadados para determinar qual coluna de ID pertence a qual tabela.