Bom dia, amigo!
Quando você usa uma subconsulta, esse valor está sendo calculado naquele momento apenas para ser projetado no resultado, e não existe na sua tabela original para que possa ser filtrado diretamente. Ou seja, falando de forma prática, quantidadeEmprestimo não pode ser filtrado no WHERE, já que ele não pertence à tabela TabelaClientes. Contudo, existem algumas alternativas que você pode utilizar.
SELECT
nome,
(SELECT COUNT(*)
FROM TabelaEmprestimo te
WHERE te.Status = 1 AND tc.id_cliente = te.id_cliente) AS quantidadeEmprestimo
FROM TabelaClientes tc
WHERE
(SELECT COUNT(*)
FROM TabelaEmprestimo te
WHERE te.Status = 1 AND tc.id_cliente = te.id_cliente) <> 0
ORDER BY quantidadeEmprestimo DESC;
⚠️ Lembrando que a forma acima não é muito eficiente, já que o banco precisa recalcular a mesma subconsulta mais de uma vez, o que pode trazer problemas de desempenho e escalabilidade. ex2:
SELECT
tc.nome,
COUNT(*) AS quantidadeEmprestimo
FROM
TabelaClientes tc
INNER JOIN
TabelaEmprestimo te ON tc.id_cliente = te.id_cliente
WHERE
te.Status = 1
GROUP BY
tc.nome
ORDER BY
quantidadeEmprestimo DESC;
Esse segundo exemplo é mais performático, especialmente em bancos com grande volume de dados, e funciona muito bem quando você só precisa de clientes que realmente tenham empréstimos com Status = 1.