Если вы настаиваете на подзапросах, вы можете сделать это:
SELECT
tblservergroup.id,
tblservergroup.groupname,
tblservergroup.note,
IF(defserverpaid='0', '0', (SELECT concat(ipaddress, ' (', name, ')') FROM tblservers WHERE id=defserverpaid)) AS defaultserverpaiddesc,
IF(defserverfree='0', '0', (SELECT concat(ipaddress, ' (', name, ')') FROM tblservers WHERE id=defserverfree)) AS defaultserverfreedesc
FROM
tblservergroup
Я бы предложил использовать LEFT JOIN
вместо:
SELECT
tblservergroup.id,
tblservergroup.groupname,
tblservergroup.note,
IF(defserverpaid='0', '0', concat(ts1.ipaddress, ' (', ts1.name, ')')) as defaultserverpaiddesc
IF(defserverfree='0', '0', concat(ts2.ipaddress, ' (', ts2.name, ')')) as defaultserverfreedesc
FROM
tblservergroup
LEFT JOIN tblservers ts1 ON ts1.id=defserverpaid
LEFT JOIN tblservers ts2 ON ts2.id=defserverfree
В идеале также следует хранить NULL
вместо 0
в defserverpaid
/ defserverfree
и добавлять ограничения внешнего ключа.