if реагирует на 0 (true) и не ноль (false), поэтому суть в том, что если
if echo "${TEMP_DATA}" | grep -iq "Mail queue is empty"; then
возвращает 0 (то есть grep нашел фразу "Mail queue is empty" хотя бы раз), то выполняется условие.
Иначе он пробует другое условие:
elif echo "${TEMP_DATA}" | grep -iPq "in\s+\d+\s+request"; then
В этом условии ищем фразу "in цифры request", если находим то выполняем.
echo "${TEMP_DATA}" | sed -e 's/.*in\s\+\([0-9]\+\)\s\+request.*/\1/gI' 2> /dev/null | head -n1
Таким образом три условия
Если очередь пустая - выводим 0, если не пустая - выводим количество request-s, в противном случае выводим ошибку.
Дальше уже вопрос как это обрабатывает заббикс - просто берет эти цифры и строит график, и реагирует на ошибку, или еще что-то.
А вообще, лучше конечно подучить основы баша и регулярных выражений. Подобные скрипты - это подсказки для тех, кто уже пишет. Они не являются end-user решениями, которые можно просто брать и ставить на свой сервер без понимания, что они делают. То есть риск всегда есть, что они делают не все, что вы хотите.