I agree with @jeckel, you should avoid conditional test logic.
The logic should be in the code you test not in the tests you code
You should use clauses
BACKGROUND to prep your test environment.
So your tests would more look like:
Given I do not have customers in my application
When I add a customer
Then I can see the customer
Given I have customers in my application
When I do something with a customer
Then I can something related to the customer
If you need some flexibility and shared context with BDD, you can have a look at the extension Gherkin Param.
You can also use
tags for grouping your tests, eg you can define
@withrecords for flagging tests that work with one and/or the other case.
Unfortunately, there's no such logic as
@depends used in PHPUnit-like testing.