Você precisa usar a opção de shell nullglob
#!/bin/bash
shopt -s nullglob
pathlist=( /no/such/path/* ); printf -- "%d\n" "${#pathlist[@]}" )
shopt -u nullglob
O manual do Bash diz o seguinte sobre a opção nullglob
shell:
If set, Bash allows filename patterns which match no files to expand to a null string, rather than themselves.