Você não precisa desse ls -tr extra. Isso é equivalente ao seu comando e mais rápido:
find . -type f | xargs stat --printf="%y %n\n" | sort -n
Algo como isso excluirá um subdiretório de arquivos:
find . -type f ! -path './directory/to/ignore/*' \
| xargs stat --printf="%y %n\n" \
| sort -n
Isso ainda verificará todos os arquivos, se você quiser ignorar um subdiretório inteiro, use -prune . Você terá que reordenar as coisas um pouco para que não encontremos todos os arquivos primeiro.
find . -path './directory/to/ignore' -prune -o -type f -print0 \
| xargs -0 stat --printf="%y %n\n" \
| sort -n
E no interesse de ser o mais eficiente possível, o stat foi redundante, já que o find já está acessando o arquivo. Então você está realmente atingindo o sistema de arquivos 2X com a abordagem find ... | stat ... , então aqui está um método mais eficiente que tem find fazendo todo o trabalho.
find . -path './directory/to/ignore' -prune -o -printf '%t %p\n'
| sort -n
Para fazer essa versão funcionar, tive que adaptar as diretivas printf, pois stat e find usam diferentes para os vários metadados do sistema de arquivos.