Eu não acho que você pode fazer isso completamente dentro de find , já que você precisa ser capaz de ver o arquivo dentro do diretório ao processar o diretório. -prune precisa operar no próprio diretório, mas -path e outras condições só vêem o nome do arquivo depois que find já desceu para o diretório.
Tudo o que posso fazer é extrair um shell para espiar dentro do diretório. Algo parecido com isto:
$ mkdir -p x y/z ; touch x/foo y/omit.txt
$ find -type d \( -exec sh -c '[ -e "$1/omit.txt" ]' sh {} \; -prune -o -print \)
.
./x
foo -o bar não avalia bar se foo for bem-sucedido, portanto, se o diretório for limpo, a impressão não será executada. Adicione -o -print ao final para imprimir o conteúdo do diretório também. Não podemos usar exec ... {} + aqui, pois precisamos que isso funcione como uma condição para cada diretório separadamente.