Could be better explained with an example,
Case-1: foo is unset
unset foo
if [[ ${foo+isset} = isset ]]; then
echo "foo is set..."
else
echo "foo is not set..."
fi
Running it produces,
bash -x script.sh
+ unset foo
+ [[ '' = isset ]]
+ echo 'foo is not set...'
foo is not set...
Case-2: foo is set and empty
$ bash -x script.sh
+ foo=
+ [[ isset = isset ]]
+ echo 'foo is set...'
foo is set...
Case-3: foo is set and having a valid value,
$ bash -x script.sh
+ foo=something
+ [[ isset = isset ]]
+ echo 'foo is set...'
foo is set...
So what basically ${paramter+word} does is
The form expands to nothing if the parameter is unset or empty. If it is set, it does not expand to the parameter's value, but to some text you can specify:
So,
if [ -z ${1+x} ]; then
checks if positional parameter $1 is set to a value, in which case it would have been assigned a value x and the check the if [ -z 'x' ] would have failed, but if $1 is empty the expansion would be if [ -z '' ] which means the test asserted true.