theres your problem, your following your if statement with a while(1); it should be following the initial do statement.
are you just returning 1 row from each query? if your just doing a single loop with a query for each loop then do this:
$result_right_sec = mysql_query( "SELECT `id`, `name`, `icon` FROM sec ORDER BY id ASC" );
while( $r = mysql_fetch_array( $result_right_sec ) )
{
$sec_name = $r['name'];
$sec_id = $r['id'];
$sec_icon = $r['icon'];
$right_cat = "{$right_cat}"." <tr>\n\t<td height='20' width='130' valign='middle' align='right' dir='rtl'><a href=\"".( "javascript:ajaxpage('sec.view.php?id=".$sec_id."', 'main1');" )."\"".( "><b>".$sec_name."</b></a></td>\n\t<td height='20' width='24' valign='middle' align='center'><img border='0' src='{$sec_icon}' width='16' height='16'></td>\n\t</tr>" );
$result_right_cat = mysql_query( "SELECT `id`, `name`, `sec` FROM cat WHERE sec='".$sec_id."' ORDER BY id ASC" );
$rr = mysql_fetch_array($result_right_cat);
$cat_name = $rr['name'];
$cat_id = $rr['id'];
$right_cat = "{$right_cat}"." <tr>\n\t\t\t<td height='20' width='130' valign='middle' align='right' dir='rtl'><a href=\"".( "javascript:ajaxpage('cat.view.php?id=".$cat_id."', 'main1');" )."\"".( ">".$cat_name. "</a></td>\n\t\t\t<td height='20' width='24' valign='middle' align='center'><img border='0' src='images/switchon.gif' width='12' height='12'></td>\n\t\t\t</tr>" );
}