Prueba este code:
Código PHP:
<?php include('conect.php');
$sql="SELECT * from categoria ORDER BY nombre ASC";
$sql_exec=mysql_query($sql) or die( "[ERROR] Query: $sql, error: " . mysql_error() );
$total = mysql_num_rows($sql_exec);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<?php if ($total > 0) { ?>
<?php while($row=mysql_fetch_assoc($sql_exec)){ ?>
<table width="250" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><?php echo $row['nombre']; ?> </td>
</tr><?php } ?><?php } else ?>
<?php echo "No hay categorias para mostrar en este momento"; ?>
</table>
</body>
</html>
Tu problema es que estas llamando a $row['$nombre'] sin embargo supongo que el campo en tu base de datos se llama $row['nombre'] sin el $.
Saludos.