Se você quiser apenas agir se uma string não estiver vazia, use um parâmetro padrão ao fazer referência à variável:
master="$(read_json -f .vcs.json -k git.master)"
Se os comandos subshell não retornarem nenhuma saída, as variáveis serão nulas. Você pode aproveitar isso com a substituição padrão:
do-a-thing "${master-master}" # if 'master' is null, use the default value 'master'
# otherwise, use the contents of the variable