Для начала, я думаю, что первый запрос возможно будет переписан как:
var bPermisos = ruc.Permisos.Where(b => b.IdUsuario == cu.Id);
Помимо этого, довольно непонятно, что делает ваш код. Вы, кажется, перепроектируете результаты, которые у вас уже есть - берете элементы известного типа и создаете анонимный тип для их хранения. Кроме того, во второй проекции осуществляется доступ к группе элементов, которые не были выбраны в первом запросе.