В Go нет null — есть zero values. Но в SQL NULL отличается от пустой строки или нуля. Варианты: sql.NullString, sql.NullInt64 — обёртки с полем Valid. Или используй указатели: *string — nil значит NULL. В pgx можно сканировать NULL прямо в *string или *int — если NULL, будет nil. Третий вариант — pgtype: pgtype.Text с полем Valid. Для INSERT: если передаёшь nil pointer, pgx вставит NULL. Выбирай один подход и придерживайся во всём проекте.