I'm assuming that Campaigns is an instance of DbSet<Campaign>? DbSet inherits DbQuery, which implements IOrderedQueryable, the definition for which is:
public interface IOrderedQueryable<out T> : IQueryable<T>,
IEnumerable<T>, IOrderedQueryable, IQueryable, IEnumerable
As you can see, both IQueryable<T> and IEnumerable<T> are implemented, but the definition of IQueryable shows that it extends IEnumerable:
public interface IQueryable : IEnumerable
So basically, the extension method is implemented for IEnumerable, but it's also available from IQueryable as it extends the original interface. Intellisense is picking up both of these options because you could end up implicitly or explicitly casting the type to an IEnumerable.
The method that will actually be run will depend on the type on which it's called. For example, on your Campaigns instance of DbSet<Campaign> the method will translate it (if you're using MS SQL) into a SELECT TOP 1... query, but if you're calling it on Campaigns.ToList(), which is IEnumerable, it'll return the item at the zero index. The implementation of the extension methods are different for each type.
Hope that makes sense :)