In bash, if you do this:
mkdir /tmp/empty array=(/tmp/empty/*)
you find that array now has one element, \"/tmp/empty/*\"
array
\"/tmp/empty/*\"
This is just a tiny bit better than your original suggestion:
local nullglob=$(shopt -p nullglob) ; shopt -s nullglob
... do whatever you want ...
$nullglob ; unset nullglob