Wikitext table formatting (using “|”) is somewhat limited in that it only works when formatting static tables where every specified row is unconditionally rendered. Thus, you could write:
|! Birthdate| {{!!birthdate}} |
|! Deathdate| {{!!deathdate}} |
However, for your use-case (where you want to conditionally display a given row only when there actually is a value to show) this cannot be achieved using wikitext table formatting. To get the rendered results you want, you will need to fallback to using HTML table syntax instead. Something like this:
<table>
<%if [<currentTiddler>has[birthdate]] %>
<tr><th>Birthdate</th><td>{{!!birthdate}}</td></tr>
<%endif%>
<%if [<currentTiddler>has[deathdate]] %>
<tr><th>Deathdate</th><td>{{!!deathdate}}</td></tr>
<%endif%>
</table>
-e