you can obtain the "AND" result by iterating over the two lists at the same time with foreach, and then if you want to filter away the nil results you can do that using "setof". Here's an example:
foreach(mapcar (a b) bslist1 bslist2 a&&b)
=> (nil nil nil nil nil
(111.135 67.755) (114.9 67.755) (114.9 66.35) (113.045 66.35)
setof(item foreach(mapcar (a b) bslist1 bslist2 a&&b) item)
=> ((111.135 67.755)
By the way, I inserted a single quote ' before the open parentheses from your example of defining bslist1 and bslist2. The 'mapcar' allows us to return the result rather than the (first) original list. With the foreach function you can iterate two variables over two lists, three variables over three lists and so on; the number of iterations is determined by the first list, so if the lists are not equal in length the first list should be the shortest or an error will ensue.
Hopefully this answers your question?