bueno ya lo he conseguido, era como pensaba, con un condicional y no seguir con los FOR. entonces el codigo me queda asi:
Código:
<table>
<?php for ($i = 0; $i < sizeof($productos); $i = $i + 4) { ?>
<tr class="first odd">
<?php for ($j = $i; $j < ($i + 3); $j++) { ?>
<td>
<?php if (isset($products[$j])) { ?>
<div>contenido</div>
<php } ?>
</td>
<php } ?>
</tr>
<php } ?>
</table>
De esa forma ya se imprimer como queria, o sea solamente los resultados dentro de los DIV que haya, si no hay resultados, los DIV no se imprimen.
Saludos!