You could use a generator expression with a function that discards the results:
def every(iterable):
for _ in iterable:
pass
every(obj.a_method() for obj in a_sequence)
> [obj.a_method() for obj in a_sequence]
I think this is an anti-pattern. The point of a comprehension is that it's an expression, which gathers up results. You're trying to hide side effects inside an expression, which is a bad thing to do, and lamenting the fact that you get a useless value back, which of course you do because expressions have values, so that should be a sign that you don't actually want an expression here.
Also, compare the actual brevity here:
[obj.a_method() for obj in a_sequence]
for obj in a_sequence: obj.a_method()
You've replaced a colon with a pair of brackets, so it's actually less concise.