An update on this.

I commented out the lines:
if (NEW_SIGNUP_GIFT_VOUCHER_AMOUNT > 0) {
$coupon_code = zen_create_coupon_code();
$insert_query = $db->Execute("insert into " . TABLE_COUPONS . " (coupon_code, coupon_type, coupon_amount, date_created) values ('" . $coupon_code . "', 'G', '" . NEW_SIGNUP_GIFT_VOUCHER_AMOUNT . "', now())");
$insert_id = $db->Insert_ID();
$db->Execute("insert into " . TABLE_COUPON_EMAIL_TRACK . " (coupon_id, customer_id_sent, sent_firstname, emailed_to, date_sent) values ('" . $insert_id ."', '0', 'Admin', '" . $email_address . "', now() )");

and the } on line 374

And it now seems to work fine.
The email is created and sent.

Obviously I need to adjust the email but it mentions a gift voucher. I have created a test coupon (which is the same as mentioned) but didn't include it when I signed up the new customer. Worryingly the URL for the gift voucher is a link to admin which is actually a 404.

Well .. at least it works now!