This is testing when someone sets the list itself, i.e. when:
this.List1 = new ReactiveList<Foo>();
Instead, you want something like:
this.WhenAnyObservable(x => x.List1.ItemChanged, x => x.List2.ItemChanged)
.Where(x => x.PropertyName == "IsChecked")
.Select(_ => List1.Any(x => x.IsChecked) && List2.Any(x => x.IsChecked));