Assuming you are using Adapter, the following is how the code should look like (not tested, but should show you the idea):
using(var adaoter = new DataAccessAdapter())
{
var innerFilter = new PredicateExpression();
innerFilter.Add(new FieldCompareSetPredicate(
ABFields.BId, null, BFields.BId, null,
SetOperator.In, (BFields.CId == XYZ)));
var filter = new PredicateExpression(AFields.ThisValue == ABC);
filter.Add(new FieldCompareSetPredicate(
AFields.AId, null, ABFields.AId, null,
SetOperator.In, innerFilter), true);
adapter.FetchEntityCollection(col, filter);
}