Sempre que você usa funções para colunas, precisa atribuir a elas um alias. A razão para isso é porque você pode estar usando muitas colunas na função, e o MySQL não saberá automaticamente qual delas usar para a saída de coluna única e geraria um nome de coluna semelhante à função que você usou.
A solução que você encontrou é absolutamente válida. No entanto, para fins de legibilidade, é recomendável usar aliases e nomes de coluna.
Portanto, sua consulta deve ser lida como tal:
SELECT
SUBSTRING(LEFT(configuration,
LOCATE('abhol_firma', configuration) - 30),
LOCATE('treuhand_betrag', configuration) + 22,
100) as configuration /* note the alias here */
FROM
tl_iso_product_collection_item
WHERE
LOCATE('abhol_firma', configuration) > 0
AND LOCATE('treuhand_betrag', configuration) > 0
ORDER BY id DESC
LIMIT 1