You can string a couple queries together, using SelectMany and Where.
var selectedChildren = (from p in parents
where p.Children.Any (c => c.CategoryNumber==1)
select p)
.SelectMany(p => p.Children)
.Where(c => c.CategoryNumber == 2);
// or...
var selectedChildren = parents
.Where(p => p.Children.Any(c => c.CategoryNumber == 1))
.SelectMany(p => p.Children)
.Where(c => c.CategoryNumber == 2);