No estás usando html válido, y por eso las cosas no se comportan como querés.
La forma de hacer lo que intentás es:
Código:
onClick="javascript:self.location.href=\'descargar1.php?id='. $archivo.'\'; return valida(form1)"
Es decir, si es necesario usar varias sentencias javascript, las separás de la misma forma en que las separarías en el código "normal": usando ";"
Claro que el "javascript
:" al comienzo de la línea se puede sacar sin problemas.
Saludos.