I think you also need a
static $belongs_to = array(array('category'));
in your model. If that does not help, you may want to try a custom sql join:
$join = 'LEFT JOIN category c ON(category.category_id = c.parent_id)';
$categories = Category::all(array('joins' => $join));
The documentation will provide further information: http://www.phpactiverecord.org/projects/main/wiki/Finders#joins