Hola, 
En efecto, es javascript el que lo hace todo.
En parte ha sido culpa mía por escribir el código de memoria y sin probarlo, y en parte del foro que mete espacios cuando la línea se hace larga. 
Así funciona (marco en rojo los puntos clave) 
PARA CAMBIAR DE COLOR LA CELDA 
Código:
 <table border="1"><tr>
<td id="celda1">
<form> 
<input type="checkbox" onClick="document.getElementById('celda1').style.backgroundColor='#ffff00';"> 
</form></td> 
</tr></table>
  (backgroundColor  va sin espacios) 
PARA OCULTAR Y MOSTRAR EL COMBO 
Código:
 <table border="1">
<tr>
<td id="celda1"><form> 
<input type="checkbox" 
onClick="document.getElementById('celda1'').style.backgroundColor='#ffff00';
document.getElementById('combo1').style.display='block';"> 
<select id="combo1" style="display:none;"> 
<option>a</option> 
<option>b</option> 
</select> 
</form></td> 
</tr>
</table>
  (backgroundColor  va sin espacios y sobraban las comillas en NONE)
Y quita el espacio que se ha metido en BLOCK 
Falta aún pulir el código del color para que vuelva a ser blanco al desmarcar el checkbox. Luego lo intento