Com javascript puro vc pode pegar o elemento pelo nome e atribuir o valor do checked de marcar/desmarcar todos
aos demais no onclick(), pois getElementsByName()
retorna uma array.
<script type="text/javascript">
function marcarTodos(marcar){
var itens = document.getElementsByName('cores[]');
if(marcar){
document.getElementById('acao').innerHTML = 'Desmarcar Todos';
}else{
document.getElementById('acao').innerHTML = 'Marcar Todos';
}
var i = 0;
for(i=0; i<itens.length;i++){
itens[i].checked = marcar;
}
}
</script>
<form>
<input type="checkbox" name="cores[]" onclick="marcarTodos(this.checked);">
<span id="acao">Marcar</span> <br>
<input type="checkbox" name="cores[]" value="azul"> azul <br>
<input type="checkbox" name="cores[]" value="verde"> verde <br>
<input type="checkbox" name="cores[]" value="branco"> branco <br>
</form>