I wanted all the 3 columns - First Name, Middle Name and Last name as a combination to not match. But here that 3 column values are not taken together with this <> condition. So all the 3 rows from Table A is coming as output instead of 1 row having RAJ SEKHAR MUKIM

Since you are on Expert forum, it is expected you know EXISTS in DB2.
why don't you code something NOT EXISTS ( from table B based on names condition),

Also, basic thing is you are joining on TABLEA.ID = TABLEB.ID which is duplicate for all three rows, so it is acting as cartesian product, Group BY is useless here as that don't make decision as to which row to return.