In Bash, when you're not concerned with portability to shells that don't support it, you should always use the double-bracket syntax:
Any of the following:
if [[ -z $variable ]]
if [[ -z "$variable" ]]
if [[ ! $variable ]]
if [[ ! "$variable" ]]
In Bash, using double square brackets, the quotes aren't necessary. You can simplify the test for a variable that does contain a value to:
if [[ $variable ]]
This syntax is compatible with ksh (at least ksh93, anyway). It does not work in pure POSIX or older Bourne shells such as sh or dash.