find pode imprimir qualquer um dos 3 timestamps que um arquivo / diretório pode ter. Você só precisa usar -printf com a sequência de formato apropriada: % C @ ou % A @ ou % T @ (veja o detalhe é man find ).
Quanto aos diretórios vazios, verificar se $? é 0 pode ser enganoso porque 0 código de retorno significa que "nada de ruim aconteceu", e um diretório vazio não conta "algo ruim", é apenas um caso especial, mas normal. Mas você pode armazenar o OUTPUT de find (e os seguintes comandos no pipe) e verificar se está vazio ou não.
Como
fileage=$(find $1 -maxdepth 1 -type f -printf "%T@\n" | sort | head -n 1)
if [ -z "fileage" ]; then
echo 0
else
echo $fileage
fi
ou, se você gosta de ser curto:
fileage=$(find $1 -maxdepth 1 -type f -printf "%T@\n" | sort | head -n 1)
echo ${fileage:=0}
Não obstante, tenha cuidado se você realmente quer ver o "arquivo mais antigo" porque isso significaria ler o tempo de criação do arquivo e que não é armazenado. Você pode ter o arquivo mais antigo com o mais novo de todos os três timestamps.