There is no straight forward function to obtain this even though it is very easy to accomplish in .NET with .InsertAt(0). Normally what we need to do in PHP we have to clone a new array by declare a new first value, then continue loop the old array, quite stupid a lot of time I found.
However I just found out an elegant way to do that today.
$ori_categories = $this->Course->Category->find('list', array('order' => 'Category.category'));
$all = array(0 => 'All Categories');
$new_categories = $all + $ori_categories;