You can use list comprehension which reads similarly to what you suggested in your question.
Note the 'str for str' at the start and the 'if' instead of 'where'.
Note also that strings are iterable so you can simplify your if statement to:
if x[0].lower() not in 'aeiou'
So an easy solution could be:
all_fruit = ['apple', 'banana', 'carrot', 'dragonfruit', 'eggplant']
#filter out fruit that start with a vowel
consonant_fruit = [fruit for fruit in all_fruit if fruit[0].lower() not in 'aeiou']
for tasty_fruit in consonant_fruit:
print tasty_fruit
Alternatively you could use a generator expression which is more memory efficient, the only change in this example is '[ ]' to '( )'
all_fruit = ['apple', 'banana', 'carrot', 'dragonfruit', 'eggplant']
#filter out fruit that start with a vowel
consonant_fruit = (fruit for fruit in all_fruit if fruit[0].lower() not in 'aeiou')
for tasty_fruit in consonant_fruit:
print tasty_fruit
There is also the filter builtin:
all_fruit = ['apple', 'banana', 'carrot', 'dragonfruit', 'eggplant']
for tasty_fruit in filter(lambda fruit: fruit[0].lower() not in 'aeiou', all_fruit):
print tasty_fruit