Assuming that you don't know whether there will be data or not i would still use a wait, even if it's for a second or 2 and just catch the exception and do not as previously suggested
try {
WebDriverWait wait = new WebDriverWait(driver, 5);
wait.Until(ExpectedConditions.ElementIsVisible(By.Id("elementId")));
element = driver.findElement(By.Id("elementId");
} catch (NoSuchElementException | TimeoutException) {}
Of course if when you hit the page you already know that whether the link should be there or not and there's no need to wait for anything to load then yes as previously suggested catch the exception and do nothing with it.