IFNULL (), примененный к клиентскому коду в соединении, должен помочь
AND r.clientcode = IFNULL(0, n.clientcode)
РЕДАКТИРОВАТЬ : Возможно, я не полностью понял ваш вопрос ... вы говорите, что хотите нолькогда они не совпадают, поэтому изначально я предложил вариант, когда поле пустое, поэтому вы получите ноль, соответствующий коду r.clientcode.IFNULL выводит первое значение, когда второе равно нулю, или второе значение, когда оно не равно нулю, просто так.
Но, если вам нужно сделать 1.), проверьте, совпадают ли они, 2.) если они есть,присоединиться, 3.) если нет, присоединиться с нулевым значением ... вам может понадобиться подзапрос
AND r.clientcode = ( IFNULL(0, select nn.clientcode FROM normalmtm nn where r.clientcode = nn.clientcode and nn.clientcode=n.clientcode) )
Что-то в этом роде, может быть ...